Hive হল একটি ওপেন সোর্স ডেটাবেস ম্যানেজমেন্ট সিস্টেম যা Hadoop প্ল্যাটফর্মে তৈরি। এটি বড় আকারের ডেটা স্টোরেজ এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। Hive এ Data Compression এবং Encoding টেকনিকগুলো ডেটা স্টোরেজের পারফরম্যান্স উন্নত করতে এবং ডিস্ক স্পেস বাঁচাতে সহায়ক। এই টেকনিকগুলো ডেটার স্টোরেজ এবং ট্রান্সফার প্রক্রিয়াকে আরও দ্রুত এবং দক্ষ করে তোলে।
Data Compression in Hive
Data Compression হল একটি পদ্ধতি যার মাধ্যমে ডেটার আকার ছোট করা হয় যাতে এটি কম ডিস্ক স্পেস ব্যবহার করে এবং দ্রুত স্টোরেজ বা ট্রান্সফার হয়। Hive-এ ডেটা কম্প্রেশন সাধারণত HDFS (Hadoop Distributed File System)-এ সঞ্চিত ডেটা কম্প্রেস করার জন্য ব্যবহৃত হয়।
Hive এ Data Compression এর উপকারিতা
- ডিস্ক স্পেস সংরক্ষণ: কম্প্রেশন ডেটার আকার কমিয়ে দেয়, যার ফলে ডিস্ক স্পেস বাঁচানো যায়।
- ডেটা ট্রান্সফার দ্রুত করা: কম্প্রেসড ডেটা নেটওয়ার্কে পাঠানো সহজ এবং দ্রুত হয়।
- পারফরম্যান্স বৃদ্ধি: কম্প্রেসড ডেটা প্রসেসিং আরও দ্রুত হতে পারে, কারণ কম আকারের ডেটা প্রসেস করতে কম সময় লাগে।
Hive এ Data Compression কনফিগারেশন
Hive-এ ডেটা কম্প্রেশন কনফিগার করার জন্য কিছু সেটিংস ব্যবহৃত হয়। এগুলির মধ্যে একটি সাধারণ কনফিগারেশন হল file format এর জন্য কম্প্রেশন নির্বাচন করা।
উদাহরণ: Hive এ কম্প্রেশন সেট করতে আপনি hive-site.xml ফাইলে hive.exec.compress.output প্রপার্টি পরিবর্তন করতে পারেন। এছাড়াও, Hive কুয়েরির মাধ্যমে কম্প্রেশন ফরম্যাট নির্ধারণ করা যায়।
<property>
<name>hive.exec.compress.output</name>
<value>true</value>
</property>
<property>
<name>hive.exec.compress.intermediate</name>
<value>true</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
</property>
Hive এ Data Compression Formats
Hive এ বিভিন্ন ধরনের কম্প্রেশন ফরম্যাট সমর্থিত, যেগুলি বিভিন্ন কম্প্রেশন স্ট্রাটেজি এবং কার্যকারিতার ওপর নির্ভর করে:
- Snappy: এটি দ্রুত কম্প্রেশন এবং ডিকম্প্রেশন সমর্থন করে এবং সাধারণত বড় ডেটাসেটের জন্য ব্যবহৃত হয়।
- Gzip: এটি উচ্চতর কম্প্রেশন রেট প্রদান করে তবে এটি ধীর ডিকম্প্রেশন করতে পারে।
- Bzip2: এটি Gzip-এর তুলনায় আরও ভালো কম্প্রেশন রেট দেয়, তবে ধীর ডিকম্প্রেশন হয়।
- LZO: এটি একটি দ্রুত এবং উচ্চ কম্প্রেশন রেট প্রদানকারী ফরম্যাট, যা বিশেষত Hadoop এর জন্য উপযোগী।
উদাহরণ:
CREATE TABLE sales_data (
transaction_id INT,
amount DOUBLE,
transaction_date STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
TBLPROPERTIES ("compression"="SNAPPY");
Data Encoding in Hive
Data Encoding হল একটি পদ্ধতি যার মাধ্যমে ডেটার প্রতিনিধিত্বকে আরও দক্ষ ও সংকুচিত করা হয়। Hive-এ Data Encoding প্রধানত Columnar Storage Formats (যেমন Parquet এবং ORC) ব্যবহার করে।
Hive এ Data Encoding এর উপকারিতা
- ডেটার সাইজ কমানো: এনকোডিং ডেটার সাইজ কমাতে সহায়ক হতে পারে, বিশেষ করে যখন টেবিলের কিছু কলাম অনেক ডুপ্লিকেট ভ্যালু ধারণ করে।
- পারফরম্যান্স বৃদ্ধি: এনকোডিং ব্যবহারে কুয়েরি পারফরম্যান্স উন্নত হয়, কারণ কম ডেটা স্টোর এবং প্রসেস করা হয়।
- ফাস্ট ডিকোডিং: এনকোডেড ডেটা দ্রুত ডিকোড করা যায়, যা ডেটা প্রসেসিং এর সময় কমায়।
Hive এ Data Encoding Techniques
Hive-এ প্রধানত দুটি এনকোডিং পদ্ধতি ব্যবহৃত হয়:
- Dictionary Encoding: এই পদ্ধতিতে একটি কলামের জন্য ডেটার একটি লিস্ট তৈরি করা হয় এবং প্রতিটি ডেটার জন্য একটি ইনডেক্স মান দেওয়া হয়। এটি ডেটা পুনরাবৃত্তি কমায় এবং ডেটার আকার ছোট করে।
- Delta Encoding: এই পদ্ধতিতে একটি কলামের মানের পরিবর্তন হিসাব করা হয়, অর্থাৎ ধারাবাহিক বা সংলগ্ন মানগুলির মধ্যে পার্থক্য সংরক্ষণ করা হয়।
Hive Columnar Storage Formats
Hive এ প্রধান Columnar Storage Formats হল ORC (Optimized Row Columnar) এবং Parquet, যেগুলি ডেটা এনকোডিংয়ের জন্য খুবই কার্যকরী।
- ORC (Optimized Row Columnar):
- ORC ফাইল ফরম্যাটে ডেটা কম্প্রেশন এবং এনকোডিং করা হয়, যার ফলে খুব ভালো পারফরম্যান্স পাওয়া যায়।
- এটি ডেটাকে column-wise স্টোর করে এবং ডেটার প্রতিটি কলামের জন্য আলাদা আলাদা কম্প্রেশন এবং এনকোডিং ব্যবহার করতে পারে।
- Parquet:
- Parquet একটি columnar ফাইল ফরম্যাট যা ডেটা এনকোডিং এবং কম্প্রেশনের জন্য অত্যন্ত কার্যকরী।
- এটি Hive, Spark, Impala, এবং অন্যান্য Big Data টুলের জন্য ব্যাপকভাবে ব্যবহৃত হয়।
উদাহরণ:
CREATE TABLE sales_data (
transaction_id INT,
amount DOUBLE,
transaction_date STRING
)
STORED AS ORC;
Hive Data Compression এবং Encoding এর মধ্যে পার্থক্য
| ফিচার | Data Compression | Data Encoding |
|---|---|---|
| উদ্দেশ্য | ডিস্ক স্পেস সংরক্ষণ এবং ডেটার আকার কমানো | ডেটার প্রতিনিধিত্ব কমানো এবং কার্যকরী করা |
| ফরম্যাট | Gzip, Snappy, Bzip2, LZO | Dictionary Encoding, Delta Encoding |
| পারফরম্যান্স প্রভাব | ডেটা কম্প্রেসড হওয়ার কারণে ট্রান্সফার ও স্টোরেজ দ্রুত হয় | ডেটা প্রসেসিং এবং কুয়েরি পারফরম্যান্স উন্নত হয় |
| প্রধান ব্যবহারের ক্ষেত্র | ডিস্ক স্পেস এবং ডেটা ট্রান্সফারের জন্য | ডেটা এনকোডিং এবং কলামার স্টোরেজ ফরম্যাটের জন্য |
| কেন ব্যবহার করা হয়? | ডিস্ক স্পেস কমানোর জন্য | দ্রুত ডেটা প্রসেসিং এবং কম্প্রেশন রেট বাড়ানোর জন্য |
উপসংহার
Hive-এ Data Compression এবং Encoding Techniques হল কার্যকরী পদ্ধতি যা ডেটার স্টোরেজ এবং পারফরম্যান্স উন্নত করতে সহায়তা করে। কম্প্রেশন ডিস্ক স্পেস সংরক্ষণ এবং ডেটার ট্রান্সফার গতি বাড়ায়, এবং এনকোডিং টেকনিকগুলো ডেটাকে আরও কম্প্যাক্ট এবং কার্যকরী করে তোলে। Hive-এ বিভিন্ন ফরম্যাট যেমন ORC, Parquet, এবং Snappy ইত্যাদি ব্যবহার করে ডেটার আকার কমানো এবং প্রক্রিয়াকরণ দ্রুত করা যায়। Data Compression এবং Encoding সমন্বয়ে ডেটা ম্যানেজমেন্ট এবং বিশ্লেষণ আরও দ্রুত, কার্যকরী এবং দক্ষ হয়।
Read more